/**x轴，y轴，Speed模拟量读取变量定义 start***/
int x = 0;
int y = 0;

int a = 0;
int x1 = 0;
int y1 = 0;
int s1 = 0;
int s2 = 0;


int i = 0;
int iii = 0;
int ii[3];
int ss[4];
int s = 1; //speed
/**x轴，y轴，Speed模拟量读取变量定义  end***/

int p2 = 0; //状态开关值
int p3 = 0; //状态开关值
int p4 = 0; //状态开关值
int p5 = 0; //状态开关值
int p6 = 0; //状态开关值
int p7 = 0; //状态开关值
int p8 = 0; //状态开关值
int p9 = 0; //状态开关值

void setup() {
  /**串口初始化 start***/
  Serial2.begin(9600);
  Serial.begin(9600);
  /**串口初始化 end***/


  pinMode(2, INPUT); //遥控启动引脚初始化
  pinMode(3, INPUT);
  pinMode(4, INPUT);
  pinMode(5, INPUT);
  pinMode(6, INPUT);
  pinMode(7, INPUT);
  pinMode(8, INPUT);
  pinMode(9, INPUT);


  /**遥控开机提示 start***/

  /**遥控开机提示 end***/

}

void loop() {
  /**遥控启动 start***/
  if ((digitalRead(2) == 0) && (p2 == 0))
  {
    delay(150);
    p2 = 1;
    pt(12);

  }
  /**遥控启动 end***/

  /**拨码开关遥控停止 start***/
  if ((digitalRead(2) == 1) && (p2 == 1))
  { p2 = 0;
    pt(22);


  }
  if ((digitalRead(3) == 0) && (p3 == 0))
  { delay(150);
    p3 = 1;
    pt(13);

  }
  /**遥控启动 end***/

  /**拨码开关遥控停止 start***/
  if ((digitalRead(3) == 1) && (p3 == 1))
  { p3 = 0;
    pt(23);


  }
  if ((digitalRead(4) == 0) && (p4 == 0))
  { delay(150);
    p4 = 1;
    pt(14);

  }
  /**遥控启动 end***/

  /**拨码开关遥控停止 start***/
  if ((digitalRead(4) == 1) && (p4 == 1))
  { p4 = 0;
    pt(24);


  }
  if ((digitalRead(5) == 0) && (p5 == 0))
  { delay(150);
    p5 = 1;
    pt(15);

  }
  /**遥控启动 end***/

  /**拨码开关遥控停止 start***/
  if ((digitalRead(5) == 1) && (p5 == 1))
  { p5 = 0;
    pt(25);


  }
  if ((digitalRead(6) == 0) && (p6 == 0))
  { delay(150);
    p6 = 1;
    pt(16);

  }
  /**遥控启动 end***/

  /**拨码开关遥控停止 start***/
  if ((digitalRead(6) == 1) && (p6 == 1))
  { p6 = 0;
    pt(26);


  }
  if ((digitalRead(7) == 0) && (p7 == 0))
  { delay(150);
    p7 = 1;

    pt(17);

  }
  /**遥控启动 end***/

  /**拨码开关遥控停止 start***/
  if ((digitalRead(7) == 1) && (p7 == 1))
  {
    p7 = 0;
    pt(27);


  }
  if ((digitalRead(8) == 0) && (p8 == 0))
  { delay(150);
    p8 = 1;
    pt(18);

  }
  /**遥控启动 end***/

  /**拨码开关遥控停止 start***/
  if ((digitalRead(8) == 1) && (p8 == 1))
  { p8 = 0;
    pt(28);


  }
  if ((digitalRead(9) == 0) && (p9 == 0))
  { delay(150);
    p9 = 1;
    pt(19);

  }
  /**遥控启动 end***/

  /**拨码开关遥控停止 start***/
  if ((digitalRead(9) == 1) && (p9 == 1))
  { p9 = 0;
    pt(29);


  }

  /**遥控启动 end***/


  /**拨码开关 遥控停止 end***/

  /**遥控端接收 start***/
  if ( Serial2.available() > 1)
  { i = Serial2.read();
    // Serial.println(i);
    math();
  }
  /**遥控端接收 end***/


  /**遥控发送 end***/
}
/**遥控发送函数 start***/
void pt(int S)
{
  Serial.print("S:");
  Serial.println(S);

  /**遥控端发送格式 start***/
  Serial2.print("&");//38
  Serial2.print(S);
  Serial2.print("!");//33
  Serial2.print("%");//37

  //Serial2.print("%");//37
  Serial2.print("&");//38 用于将每次传入的数值读取到，防止缓冲导致读取的不及时！

  /**遥控端停止飞行指令 end***/

}
/**遥控发送函数 end***/

//遥控数据处理函数
void math()
{
  
   /**停止飞行声音提醒 start***/

  /**停止飞行声音提醒 end***/
  
   if(i==38)
  {
    a=1;
    
  }

  if(i==33)
  { 
if(iii==1)
ss[1]=ii[0];
if(iii==2)
{ss[1]=ii[0]*10+ii[1];
 iii=0;
 }
  }
  if(i==37)
  {
//  x1=ss[1];  //x轴控制值
//  y1=ss[2];  //x轴控制值
/// iii=0;
  s=ss[1];     //Speed控制值
Serial.println(s);
if(s==22)
digitalWrite(22,HIGH);
if(s==12)
digitalWrite(22,LOW);
if(s==23)
digitalWrite(23,HIGH);
if(s==13)
digitalWrite(23,LOW);
if(s==24)
digitalWrite(24,HIGH);
if(s==14)
digitalWrite(24,LOW);
if(s==25)
digitalWrite(25,HIGH);
if(s==15)
digitalWrite(25,LOW);
if(s==26)
digitalWrite(26,HIGH);
if(s==16)
digitalWrite(26,LOW);
if(s==27)
digitalWrite(27,HIGH);
if(s==17)
digitalWrite(27,LOW);

 
 
   a=0;       //数据接收控制符
  }
  if(i>47)
  {
   iii=iii+1;
   if(iii==1)
   ii[0]=i-48;
    if(iii==2)
   ii[1]=i-48;
  if(iii==3)
   ii[2]=i-48; 
      i=0;  
  }
}